package ysf.com.difficulty;

/**
 * 三十二  找到合法字符并返回长度
 * @author ysf
 * @date 2021/8/19 14:29
 */
public class ThirtyTwoDemo {

    public static void main(String[] args) {

        String s ="(())";
        int i = longestValidParentheses(s);
        System.out.println(i);

    }


    public static int longestValidParentheses(String s) {
        int count = 0;
        int max = 0;

        for (int i = 0; i < s.length(); i++) {
            count = 0;
            for (int j = i; j < s.length(); j++) {
                    if (s.charAt(j) == '(') {
                        count++;
                    } else {
                        count--;
                    }
                    //count < 0 说明右括号多了，此时⽆论后边是什么，⼀定是⾮法字符串了，所以可以提前结束循环
                    if (count < 0) {
                        break;
                    }
                    //当前是合法序列，更新最⻓⻓度
                    if (count == 0) {
                        if (j - i + 1 > max) {
                            max = j - i + 1;
                        }
                    }
                }
            }
        return max;
    }

}
